package com.info.zhiduoduo.admin.model.formbean.company;

import com.info.zhiduoduo.common.constants.Constants;
import com.info.zhiduoduo.common.utils.NumberUtil;
import com.info.zhiduoduo.repository.entity.company.CompanyTax;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.beans.BeanUtils;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class CompanyTaxFormBean {

	/**
	 * 企业id
	 */
	@ApiModelProperty("企业id")
	private Integer compid;
	/**
	 * 企业名
	 */
	@ApiModelProperty("企业名")
	private String compname;
	/**
	 * 普票低金额服务费率
	 */
	@ApiModelProperty("普票低金额服务费率")
	private Double genLowServiceRate;
	/**
	 * 普票高金额服务费率
	 */
	@ApiModelProperty("普票高金额服务费率")
	private Double genHighServiceRate;
	/**
	 * 普票高金额税率
	 */
	@ApiModelProperty("普票高金额税率")
	private Double genHighTaxRate;
	/**
	 * 专票低金额服务费率
	 */
	@ApiModelProperty("专票低金额服务费率")
	private Double speServiceRate;
	/**
	 * 专票低金额税率
	 */
	@ApiModelProperty("专票低金额税率")
	private Double speTaxRate;
	/**
	 * 普票专票全年高金额税率
	 */
	@ApiModelProperty("普票专票全年高金额税率")
	private Double yearlyHighTaxRate;
	/**
	 * 普票专票全年高金额服务费率
	 */
	@ApiModelProperty("普票专票全年高金额服务费率")
	private Double yearlyHighServiceRate;
	/**
	 * 普票专票全年2级高金额税率
	 */
	@ApiModelProperty("普票专票全年2级高金额税率")
	private Double yearlyHigh2TaxRate;
	/**
	 * 普票专票全年2级高金额服务费率
	 */
	@ApiModelProperty("普票专票全年2级高金额服务费率")
	private Double yearlyHigh2ServiceRate;
	/**
	 * 普票专票全年3级高金额税率
	 */
	@ApiModelProperty("普票专票全年3级高金额税率")
	private Double yearlyHigh3TaxRate;
	/**
	 * 普票专票全年3级高金额服务费率
	 */
	@ApiModelProperty("普票专票全年3级高金额服务费率")
	private Double yearlyHigh3ServiceRate;
	/**
	 * 是否是固定服务费率 0:否 1:是
	 */
	@ApiModelProperty("是否是固定服务费率 0:否 1:是")
	private Integer fixedService;
	/**
	 * 固定费率
	 */
	@ApiModelProperty("固定费率")
	private Double fixedServiceRate;
	/**
	 * 使用企业费率开关 0:否 1:是
	 */
	@ApiModelProperty("使用企业费率开关 0:否 1:是")
	private Integer companyTaxFlag;

	public CompanyTax toEntity() {
		CompanyTax companyTax = new CompanyTax();
		BeanUtils.copyProperties(this, companyTax);
		// 设置固定费率
		if (NumberUtil.equals(this.getFixedService(), Constants.TRUE)) {
			Double fixedServiceRate = this.getFixedServiceRate();
			double taxRate = 0d;

			companyTax.setSpeServiceRate(fixedServiceRate)
					.setGenLowServiceRate(fixedServiceRate)
					.setGenHighServiceRate(fixedServiceRate)
					.setYearlyHighServiceRate(fixedServiceRate)
					.setYearlyHigh2ServiceRate(fixedServiceRate)
					.setYearlyHigh3ServiceRate(fixedServiceRate)
					.setSpeTaxRate(taxRate)
					.setGenHighTaxRate(taxRate)
					.setYearlyHighTaxRate(taxRate)
					.setYearlyHigh2TaxRate(taxRate)
					.setYearlyHigh3TaxRate(taxRate);
		}
		return companyTax;
	}
}
